// 这个 instanceof 就是判断一个构造函数是否在一个实例对象的原型链上，如果在就返回 true，否则返回 false。
// 虽然这个是判断构造函数的，但是实际上是从实例对象身上开始往后判断原型链的。
function myInstanceof(left, right) {
  // 先判断这个left是否是基础类型，如果是就返回 false
  if (typeof left !== "object" || left === null) return false;
  // getProtypeOf Object API，能够拿到参数的原型对象
  let proto = Object.getPrototypeOf(left);
  while (true) {
    if (proto === null) return false;
    if (proto === right.prototype) return true;
    proto = Object.getPrototypeOf(proto);
  }
}
